(function($f) {	$f.extend.custom("myPlugin", function(self) {

	"use strict";
	
	// plugin info
	this.info = {
		title: "My Plugin",
		version: "0.0.1" // major.minor.build
	};

	// ready handler
	// returns: (void)
	this.onReady = function() {
		// show plugins list now
		self.showList.ofPlugins("plugins-list");
	};
	
	this.showList = {
		// show plugins list in specified div
		ofPlugins: function(divId) {
			// load plugins list
			var div = $("#" + divId);
			var list = "<table><tr style='background-color: lightgray'><th align='left'>Name</th><th align='left'>Features #</th><th align='left'>Features</th></tr>";
			var features = [];
			$.each($f.all.plugins(), function(i, plugin) {
				var style = ("myPlugin, IO, document".indexOf(plugin.handle.name) !== -1 ? "background-color: yellow;" : "");
				list += "<tr style='" + style + "'><td>" + plugin.handle.name + "</td>";
				features = plugin.all.features();
				list += "<td style='vertical-align: top'>" + features.length.toString() + "</td><td style='vertical-align: top'>";
				$.each(features, function(i, feature) {
					list += feature.featureHandle.name + ", ";
				});
				list += "</td></tr>";
			});
			list += "</table>";
			div.empty().append(list);
		}
		
		// note: ofFeatures function will come here when myFeature1 is merged into this plugin
	};
}); }(fluid));
